home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / Xm / XmQTmenuSystem.z / XmQTmenuSystem
Text File  |  1998-10-30  |  51KB  |  793 lines

  1.  
  2.  
  3.  
  4.      XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))        UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV        XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))
  5.  
  6.  
  7.  
  8.      NNNNAAAAMMMMEEEE
  9.           _X_m_Q_T_m_e_n_u_S_y_s_t_e_m - A widget holding this trait can serve as a
  10.           menu system
  11.  
  12.      SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.           #include <Xm/MenuT.h>
  14.  
  15.           typedef struct {
  16.                     int                      version;
  17.                     XmMenuSystemTypeProc          type;
  18.                     XmMenuSystemStatusProc        status;
  19.                     XmMenuSystemCascadeProc       cascade;
  20.                     XmMenuSystemVerifyProc        verifyButton;
  21.                     XmMenuSystemControlTraversalProc        controlTraversal;
  22.                     XmMenuSystemMenuBarCleanupProc     menuBarCleanup;
  23.                     XmMenuSystemPopdownProc       popdown;
  24.                     XmMenuSystemPopdownProc       buttonPopdown;
  25.                     XmMenuSystemReparentProc           reparentToTearOffShell;
  26.                     XmMenuSystemReparentProc           reparentToMenuShell;
  27.                     XmMenuSystemArmProc           arm;
  28.                     XmMenuSystemDisarmProc        disarm;
  29.                     XmMenuSystemTearOffArmProc         tearOffArm;
  30.                     XmMenuSystemEntryCallbackProc      entryCallback;
  31.                     XmMenuSystemUpdateHistoryProc      updateHistory;
  32.                     XmMenuSystemGetPostedFromWidgetProc     getLastSelectToplevel;
  33.                     XmMenuSystemPositionProc           position;
  34.                     XmMenuSystemUpdateBindingsProc     updateBindings;
  35.                     XmMenuSystemRecordPostFromWidgetProc    recordPostFromWidget;
  36.                     XmMenuSystemPopdownAllProc         popdownEveryone;
  37.                     XmMenuSystemChildFocusProc         childFocus;
  38.                     XmMenuSystemPopupPostedProc        getPopupPosted;
  39.           } XmMenuSystemTraitRec, *XmMenuSystemTrait;
  40.  
  41.           #define  XmMenuSystemTypeProc                XmMenuSystemWidgetProc
  42.           #define  XmMenuSystemStatusProc              XmMenuSystemWidgetProc
  43.           #define  XmMenuSystemMenuBarCleanupProc      XmMenuSystemDisarmProc
  44.           #define  XmMenuSystemReparentProc            XmMenuSystemPositionProc
  45.           #define  XmMenuSystemArmProc                 XmMenuSystemDisarmProc
  46.           #define  XmMenuSystemTearOffArmProc          XmMenuSystemDisarmProc
  47.           #define  XmMenuSystemGetPostedFromWidgetProc    XmMenuSystemDisarmProc
  48.           #define  XmMenuSystemPopdownAllProc          XmMenuSystemPositionProc
  49.           #define  XmMenuSystemChildFocusProc          XmMenuSystemDisarmProc
  50.           vvvvooooiiiidddd ((((****XXXXmmmmMMMMeeeennnnuuuuSSSSyyyysssstttteeeemmmmCCCCaaaassssccccaaaaddddeeeePPPPrrrroooocccc))))(
  51.           WWWWiiiiddddggggeeeetttt,
  52.           WWWWiiiiddddggggeeeetttt,
  53.           XXXXEEEEvvvveeeennnntttt****,
  54.           BBBBoooooooolllleeeeaaaannnn ((((****XXXXmmmmMMMMeeeennnnuuuuSSSSyyyysssstttteeeemmmmVVVVeeeerrrriiiiffffyyyyPPPPrrrroooocccc))))(
  55.           WWWWiiiiddddggggeeeetttt,
  56.           XXXXEEEEvvvveeeennnntttt****,
  57.           vvvvooooiiiidddd ((((****XXXXmmmmMMMMeeeennnnuuuuSSSSyyyysssstttteeeemmmmCCCCoooonnnnttttrrrroooollllTTTTrrrraaaavvvveeeerrrrssssaaaallllPPPPrrrroooocccc))))(
  58.           WWWWiiiiddddggggeeeetttt,
  59.           BBBBoooooooolllleeeeaaaannnn,
  60.  
  61.  
  62.  
  63.      Page 1                                         (printed 10/24/98)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))        UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV        XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))
  71.  
  72.  
  73.  
  74.           BBBBoooooooolllleeeeaaaannnn ((((****XXXXmmmmMMMMeeeennnnuuuuSSSSyyyysssstttteeeemmmmPPPPooooppppddddoooowwwwnnnnPPPPrrrroooocccc))))(
  75.           WWWWiiiiddddggggeeeetttt,
  76.           XXXXEEEEvvvveeeennnntttt****,
  77.           vvvvooooiiiidddd ((((****XXXXmmmmMMMMeeeennnnuuuuSSSSyyyysssstttteeeemmmmDDDDiiiissssaaaarrrrmmmmPPPPrrrroooocccc))))(
  78.           WWWWiiiiddddggggeeeetttt,
  79.           vvvvooooiiiidddd ((((****XXXXmmmmMMMMeeeennnnuuuuSSSSyyyysssstttteeeemmmmEEEEnnnnttttrrrryyyyCCCCaaaallllllllbbbbaaaacccckkkkPPPPrrrroooocccc))))(
  80.           WWWWiiiiddddggggeeeetttt,
  81.           WWWWiiiiddddggggeeeetttt,
  82.           XXXXttttPPPPooooiiiinnnntttteeeerrrr,
  83.           BBBBoooooooolllleeeeaaaannnn ((((****XXXXmmmmMMMMeeeennnnuuuuSSSSyyyysssstttteeeemmmmUUUUppppddddaaaatttteeeeHHHHiiiissssttttoooorrrryyyyPPPPrrrroooocccc))))(
  84.           WWWWiiiiddddggggeeeetttt,
  85.           WWWWiiiiddddggggeeeetttt,
  86.           BBBBoooooooolllleeeeaaaannnn,
  87.           vvvvooooiiiidddd ((((****XXXXmmmmMMMMeeeennnnuuuuSSSSyyyysssstttteeeemmmmPPPPoooossssiiiittttiiiioooonnnnPPPPrrrroooocccc))))(
  88.           WWWWiiiiddddggggeeeetttt,
  89.           XXXXEEEEvvvveeeennnntttt****,
  90.           vvvvooooiiiidddd ((((****XXXXmmmmMMMMeeeennnnuuuuSSSSyyyysssstttteeeemmmmUUUUppppddddaaaatttteeeeBBBBiiiinnnnddddiiiinnnnggggssssPPPPrrrroooocccc))))(
  91.           WWWWiiiiddddggggeeeetttt,
  92.           iiiinnnntttt,
  93.           vvvvooooiiiidddd ((((****XXXXmmmmMMMMeeeennnnuuuuSSSSyyyysssstttteeeemmmmRRRReeeeccccoooorrrrddddPPPPoooossssttttFFFFrrrroooommmmWWWWiiiiddddggggeeeettttPPPPrrrroooocccc))))(
  94.           WWWWiiiiddddggggeeeetttt,
  95.           WWWWiiiiddddggggeeeetttt,
  96.           BBBBoooooooolllleeeeaaaannnn,
  97.           WWWWiiiiddddggggeeeetttt ((((****XXXXmmmmMMMMeeeennnnuuuuSSSSyyyysssstttteeeemmmmPPPPooooppppuuuuppppPPPPoooosssstttteeeeddddPPPPrrrroooocccc))))(
  98.           WWWWiiiiddddggggeeeetttt,
  99.           iiiinnnntttt ((((****XXXXmmmmMMMMeeeennnnuuuuSSSSyyyysssstttteeeemmmmWWWWiiiiddddggggeeeettttPPPPrrrroooocccc))))(
  100.           WWWWiiiiddddggggeeeetttt);
  101.  
  102.      VVVVEEEERRRRSSSSIIIIOOOONNNN
  103.           This page documents Motif 2.1.
  104.  
  105.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  106.           A widget holding the _X_m_Q_T_m_e_n_u_S_y_s_t_e_m trait can be configured
  107.           as a menu system. In the standard Motif widget set, only the
  108.           XXXXmmmmRRRRoooowwwwCCCCoooolllluuuummmmnnnn widget holds this trait.
  109.  
  110.           The _X_m_Q_T_m_e_n_u_S_y_s_t_e_m trait provides many trait methods.  If
  111.           you are writing a menu child widget, then you will need to
  112.           call some of these trait methods. For example, the
  113.           _E_x_m_M_e_n_u_B_u_t_t_o_n demonstration widget uses the following trait
  114.           methods of _X_m_Q_T_m_e_n_u_S_y_s_t_e_m:
  115.  
  116.              +o  ssssttttaaaattttuuuussss
  117.  
  118.              +o  cccchhhhiiiillllddddFFFFooooccccuuuussss
  119.  
  120.              +o  rrrreeeeppppaaaarrrreeeennnnttttTTTTooooTTTTeeeeaaaarrrrOOOOffffffffSSSShhhheeeellllllll
  121.  
  122.              +o  bbbbuuuuttttttttoooonnnnPPPPooooppppddddoooowwwwnnnn
  123.  
  124.              +o  ggggeeeettttLLLLaaaassssttttSSSSeeeelllleeeeccccttttTTTTooooppppLLLLeeeevvvveeeellll
  125.  
  126.  
  127.  
  128.  
  129.      Page 2                                         (printed 10/24/98)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))        UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV        XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))
  137.  
  138.  
  139.  
  140.              +o  eeeennnnttttrrrryyyyCCCCaaaallllllllbbbbaaaacccckkkk
  141.  
  142.              +o  vvvveeeerrrriiiiffffyyyyBBBBuuuuttttttttoooonnnn
  143.  
  144.              +o  ccccoooonnnnttttrrrroooollllTTTTrrrraaaavvvveeeerrrrssssaaaallll
  145.  
  146.              +o  ggggeeeettttPPPPooooppppuuuuppppPPPPoooosssstttteeeedddd
  147.  
  148.              +o  tttteeeeaaaarrrrOOOOffffffffAAAArrrrmmmm
  149.  
  150.              +o  ppppooooppppddddoooowwwwnnnnEEEEvvvveeeerrrryyyyoooonnnneeee
  151.  
  152.              +o  ppppooooppppddddoooowwwwnnnn
  153.  
  154.           We do not recommend writing your own menu manager widget.
  155.  
  156.           All the primitive button widgets and button gadgets in the
  157.           standard Motif widget set call trait methods of
  158.           _X_m_Q_T_m_e_n_u_S_y_s_t_e_m.
  159.  
  160.         TTTThhhheeee ttttyyyyppppeeee TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  161.           iiiinnnntttt ttttyyyyppppeeee(
  162.           WWWWiiiiddddggggeeeetttt rrrroooowwwwCCCCoooolllluuuummmmnnnnWWWWiiiiddddggggeeeetttt);
  163.  
  164.           The _t_y_p_e trait method returns the kind of menu system (for
  165.           example, a Pulldown menu) that widget _r_o_w_C_o_l_u_m_n_W_i_d_g_e_tis
  166.           managing.
  167.  
  168.           _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t
  169.                     Specifies the parent widget that is managing the
  170.                     menu system.  Typically, _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t is the
  171.                     parent widget of the current widget.
  172.  
  173.           This trait method returns the type of menu. The returned
  174.           type must be one of the following:  XXXXmmmmWWWWOOOORRRRKKKK____AAAARRRREEEEAAAA, XXXXmmmmMMMMEEEENNNNUUUU____BBBBAAAARRRR,
  175.           XXXXmmmmMMMMEEEENNNNUUUU____PPPPUUUULLLLLLLLDDDDOOOOWWWWNNNN, XXXXmmmmMMMMEEEENNNNUUUU____PPPPOOOOPPPPUUUUPPPP, or XXXXmmmmMMMMEEEENNNNUUUU____OOOOPPPPTTTTIIIIOOOONNNN.
  176.  
  177.         TTTThhhheeee ssssttttaaaattttuuuussss TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  178.           iiiinnnntttt ssssttttaaaattttuuuussss(
  179.           WWWWiiiiddddggggeeeetttt rrrroooowwwwCCCCoooolllluuuummmmnnnnWWWWiiiiddddggggeeeetttt);
  180.  
  181.           The _s_t_a_t_u_s trait method returns the current status of
  182.           certain menu operations.
  183.  
  184.           _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t
  185.                     Specifies the XXXXmmmmRRRRoooowwwwCCCCoooolllluuuummmmnnnn widget that is managing
  186.                     the menu system.  Typically, _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t is
  187.                     the parent widget of the current widget.
  188.  
  189.           This trait method returns a bit mask symbolizing the current
  190.           status of certain menu operations.  The XXXXmmmm////XXXXmmmmPPPP....hhhh header file
  191.           provides widget writers with the following macros for
  192.  
  193.  
  194.  
  195.      Page 3                                         (printed 10/24/98)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))        UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV        XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))
  203.  
  204.  
  205.  
  206.           interpreting the returned mask:
  207.  
  208.           XmIsTorn(_m_a_s_k)
  209.                     This macro returns a nonzero value if the menu has
  210.                     already been torn off.  Otherwise, this macro
  211.                     returns 0.
  212.  
  213.           XmIsTearOffShellDescendant(_m_a_s_k)
  214.                     This macro returns a nonzero value if the menu is
  215.                     a descendant of the tear-off shell. Otherwise,
  216.                     this macro returns 0.
  217.  
  218.           XmPopupPosted(_m_a_s_k)
  219.                     This macro returns a nonzero value if the menu is
  220.                     a Popup menu that has already been posted.
  221.                     Otherwise, this macro returns 0.
  222.  
  223.           XmIsInDragMode(_m_a_s_k)
  224.                     This macro returns a nonzero value if the menu is
  225.                     in drag mode.  Otherwise, this macro returns 0.
  226.  
  227.         TTTThhhheeee ccccaaaassssccccaaaaddddeeee TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  228.           vvvvooooiiiidddd ccccaaaassssccccaaaaddddeeee(
  229.           WWWWiiiiddddggggeeeetttt rrrroooowwwwCCCCoooolllluuuummmmnnnnWWWWiiiiddddggggeeeetttt,
  230.           WWWWiiiiddddggggeeeetttt ccccaaaassssccccaaaaddddeeeeBBBBuuuuttttttttoooonnnnWWWWiiiiddddggggeeeetttt,
  231.           XXXXEEEEvvvveeeennnntttt ****eeeevvvveeeennnntttt);
  232.  
  233.           We do not recommend writing your own cascade button widget;
  234.           however, if you do, then your cascade button widget must
  235.           call the _c_a_s_c_a_d_e trait method. More specifically, your
  236.           cascade button widget must call _c_a_s_c_a_d_e immediately prior to
  237.           performing the menu cascade itself.  The _c_a_s_c_a_d_e trait
  238.           method records the data causing the cascade.  Furthermore,
  239.           the trait method positions the submenu.  Note that this
  240.           trait method does not actually perform the menu cascade
  241.           itself.
  242.  
  243.           _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t
  244.                     Specifies the submenu to post.
  245.  
  246.           _c_a_s_c_a_d_e_B_u_t_t_o_n_W_i_d_g_e_t
  247.                     Specifies the cascade button widget that is about
  248.                     to be cascaded.
  249.  
  250.           _e_v_e_n_t     Specifies a pointer to the event causing the menu
  251.                     cascade.
  252.  
  253.         TTTThhhheeee vvvveeeerrrriiiiffffyyyyBBBBuuuuttttttttoooonnnn TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  254.           BBBBoooooooolllleeeeaaaannnn vvvveeeerrrriiiiffffyyyyBBBBuuuuttttttttoooonnnn(
  255.           WWWWiiiiddddggggeeeetttt rrrroooowwwwCCCCoooolllluuuummmmnnnnWWWWiiiiddddggggeeeetttt,
  256.           XXXXEEEEvvvveeeennnntttt ****eeeevvvveeeennnntttt);
  257.  
  258.  
  259.  
  260.  
  261.      Page 4                                         (printed 10/24/98)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.      XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))        UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV        XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))
  269.  
  270.  
  271.  
  272.           A child button widget calls the vvvveeeerrrriiiiffffyyyyBBBBuuuuttttttttoooonnnn trait method to
  273.           determine whether _e_v_e_n_t is supposed to cause menu posting.
  274.           The event that is supposed to cause menu posting is defined
  275.           by the XXXXmmmmNNNNmmmmeeeennnnuuuuPPPPoooosssstttt resource of the parent XXXXmmmmRRRRoooowwwwCCCCoooolllluuuummmmnnnn
  276.           widget.
  277.  
  278.           _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t
  279.                     Specifies the parent XXXXmmmmRRRRoooowwwwCCCCoooolllluuuummmmnnnn widget that holds
  280.                     the menu posting event.
  281.  
  282.           _e_v_e_n_t     Specifies a pointer to the event received by the
  283.                     child button widget that is to be verified.
  284.  
  285.           This trait method returns _T_r_u_e if the _e_v_e_n_t matches the menu
  286.           posting specification defined by the XXXXmmmmNNNNmmmmeeeennnnuuuuPPPPoooosssstttt resource of
  287.           _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t.  Otherwise, it returns _F_a_l_s_e.
  288.  
  289.         TTTThhhheeee ccccoooonnnnttttrrrroooollllTTTTrrrraaaavvvveeeerrrrssssaaaallll TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  290.           vvvvooooiiiidddd ccccoooonnnnttttrrrroooollllTTTTrrrraaaavvvveeeerrrrssssaaaallll(
  291.           WWWWiiiiddddggggeeeetttt rrrroooowwwwCCCCoooolllluuuummmmnnnnWWWWiiiiddddggggeeeetttt,
  292.           BBBBoooooooolllleeeeaaaannnn ttttrrrraaaavvvveeeerrrrsssseeee);
  293.  
  294.           We do not recommend writing your own cascade button widget;
  295.           however, if you do, then your cascade button widget will
  296.           call ccccoooonnnnttttrrrroooollllTTTTrrrraaaavvvveeeerrrrssssaaaallll to control traversal within the
  297.           MenuBar.  This trait method turns menu traversal on or off.
  298.  
  299.           _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t
  300.                     Specifies the RowColumn widget that will handle
  301.                     traversal.
  302.  
  303.           _t_r_a_v_e_r_s_e  This is a BBBBoooooooolllleeeeaaaannnn value. Ordinarily, this should
  304.                     be set to False.  Specifying _F_a_l_s_e establishes
  305.                     default Motif traversal behavior within a MenuBar,
  306.                     which is to say that traversal is disabled.
  307.                     Specifying _T_r_u_e enables menu traversal within the
  308.                     MenuBar.
  309.  
  310.         TTTThhhheeee mmmmeeeennnnuuuuBBBBaaaarrrrCCCClllleeeeaaaannnnuuuupppp TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  311.           vvvvooooiiiidddd mmmmeeeennnnuuuuBBBBaaaarrrrCCCClllleeeeaaaannnnuuuupppp(
  312.           WWWWiiiiddddggggeeeetttt mmmmeeeennnnuuuuBBBBaaaarrrrWWWWiiiiddddggggeeeetttt);
  313.  
  314.           A user may invoke the <<<<oooossssffffMMMMeeeennnnuuuuBBBBaaaarrrr>>>> action of
  315.           XXXXmmmmRRRRoooowwwwCCCCoooolllluuuummmmnnnn(typically, by pressing the F10 function key) to
  316.           activate traversal within the MenuBar.  When the user
  317.           invokes <<<<oooossssffffMMMMeeeennnnuuuuBBBBaaaarrrr>>>> a second time to deactivate menu
  318.           traversal, the XXXXmmmmRRRRoooowwwwCCCCoooolllluuuummmmnnnn needs to "clean up" the MenuBar.
  319.           This cleanup involves lowering any Pulldown or Popup menus.
  320.           In the standard Motif widget set, XXXXmmmmCCCCaaaassssccccaaaaddddeeeeBBBBuuuuttttttttoooonnnn and
  321.           XXXXmmmmCCCCaaaassssccccaaaaddddeeeeBBBBuuuuttttttttoooonnnnGGGGaaaaddddggggeeeettttboth call the mmmmeeeennnnuuuuBBBBaaaarrrrCCCClllleeeeaaaannnnuuuupppp trait
  322.           method.
  323.  
  324.  
  325.  
  326.  
  327.      Page 5                                         (printed 10/24/98)
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.      XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))        UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV        XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))
  335.  
  336.  
  337.  
  338.           _m_e_n_u_B_a_r_W_i_d_g_e_t
  339.                     Specifies the menubar widget (typically, an
  340.                     XXXXmmmmRRRRoooowwwwCCCCoooolllluuuummmmnnnn widget) that needs to be cleaned up.
  341.  
  342.         TTTThhhheeee ppppooooppppddddoooowwwwnnnn TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  343.           BBBBoooooooolllleeeeaaaannnn ppppooooppppddddoooowwwwnnnn(
  344.           WWWWiiiiddddggggeeeetttt rrrroooowwwwCCCCoooolllluuuummmmnnnnWWWWiiiiddddggggeeeetttt,
  345.           XXXXEEEEvvvveeeennnntttt ****eeeevvvveeeennnntttt);
  346.  
  347.           The ppppooooppppddddoooowwwwnnnn trait method pops down all the Popup menus
  348.           associated with the _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t.  This trait method is
  349.           similar to the bbbbuuuuttttttttoooonnnnPPPPooooppppddddoooowwwwnnnntrait method. Your widget should
  350.           call ppppooooppppddddoooowwwwnnnnif _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t is in a tear-off shell.
  351.  
  352.           _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t
  353.                     Specifies the parent widget (typically, an
  354.                     XXXXmmmmRRRRoooowwwwCCCCoooolllluuuummmmnnnn widget) that is managing the Popup
  355.                     menus.
  356.  
  357.           _e_v_e_n_t     Specifies a pointer to the event causing the
  358.                     popdown.
  359.  
  360.           This trait method returns _T_r_u_e if _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t was
  361.           managing any Popup menus. Otherwise, it returns _F_a_l_s_e.
  362.  
  363.         TTTThhhheeee bbbbuuuuttttttttoooonnnnPPPPooooppppddddoooowwwwnnnn TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  364.           BBBBoooooooolllleeeeaaaannnn bbbbuuuuttttttttoooonnnnPPPPooooppppddddoooowwwwnnnn(
  365.           WWWWiiiiddddggggeeeetttt rrrroooowwwwCCCCoooolllluuuummmmnnnnWWWWiiiiddddggggeeeetttt,
  366.           XXXXEEEEvvvveeeennnntttt ****eeeevvvveeeennnntttt);
  367.  
  368.           The bbbbuuuuttttttttoooonnnnPPPPooooppppddddoooowwwwnnnn trait method pops down all the Popup menus
  369.           associated with the _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t.  This trait method is
  370.           similar to the bbbbuuuuttttttttoooonnnnPPPPooooppppddddoooowwwwnnnntrait method. Your widget should
  371.           call ppppooooppppddddoooowwwwnnnnif _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t is not in a tear-off shell.
  372.           The bbbbuuuuttttttttoooonnnnPPPPooooppppddddoooowwwwnnnn trait method provides a slight delay
  373.           between the time the user presses the button and the popdown
  374.           occurs.  This delay gives the widget time to draw visuals
  375.           that simulate the button being pressed.
  376.  
  377.           _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t
  378.                     Specifies the Popup menu widget that needs to be
  379.                     popped down.
  380.  
  381.           _e_v_e_n_t     Specifies the event that caused the popdown.
  382.  
  383.           This trait method returns _T_r_u_e if the _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t was
  384.           managing any Popup menus. Otherwise, returns _F_a_l_s_e.
  385.  
  386.         TTTThhhheeee rrrreeeeppppaaaarrrreeeennnnttttTTTTooooTTTTeeeeaaaarrrrOOOOffffffffSSSShhhheeeellllllll TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  387.           vvvvooooiiiidddd rrrreeeeppppaaaarrrreeeennnnttttTTTTooooTTTTeeeeaaaarrrrOOOOffffffffSSSShhhheeeellllllll(
  388.           WWWWiiiiddddggggeeeetttt rrrroooowwwwCCCCoooolllluuuummmmnnnnWWWWiiiiddddggggeeeetttt,
  389.           XXXXEEEEvvvveeeennnntttt ****eeeevvvveeeennnntttt);
  390.  
  391.  
  392.  
  393.      Page 6                                         (printed 10/24/98)
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.      XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))        UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV        XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))
  401.  
  402.  
  403.  
  404.           When a user tears off a tear-off menu, the _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t
  405.           holding the menu needs to be reparented. In other words, the
  406.           _r_o_w_C_o_l_u_m_n_W_i_d_g_e_tthat was a child of the MenuBar must now
  407.           become a child of the tear-off shell. In order to do this,
  408.           the child button widget calls the rrrreeeeppppaaaarrrreeeennnnttttTTTTooooTTTTeeeeaaaarrrrOOOOffffffffSSSShhhheeeellllllll
  409.           trait method.
  410.  
  411.           _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t
  412.                     Specifies the menu to reparent.
  413.  
  414.           _e_v_e_n_t     Specifies a pointer to the event that caused the
  415.                     tear off.
  416.  
  417.         TTTThhhheeee rrrreeeeppppaaaarrrreeeennnnttttTTTTooooMMMMeeeennnnuuuuSSSShhhheeeellllllll TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  418.           vvvvooooiiiidddd rrrreeeeppppaaaarrrreeeennnnttttTTTTooooMMMMeeeennnnuuuuSSSShhhheeeellllllll(
  419.           WWWWiiiiddddggggeeeetttt rrrroooowwwwCCCCoooolllluuuummmmnnnnWWWWiiiiddddggggeeeetttt,
  420.           XXXXEEEEvvvveeeennnntttt ****eeeevvvveeeennnntttt);
  421.  
  422.           When a user collapses a tear-off shell, the _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t
  423.           holding the menu needs to be reparented. That is, the menu
  424.           inside the tear-off shell must become a child of the
  425.           MenuBar. Therefore, when the user collapses a tear-off
  426.           shell, the child button widget (typically, a cascade button
  427.           widget) must call rrrreeeeppppaaaarrrreeeennnnttttTTTTooooMMMMeeeennnnuuuuSSSShhhheeeellllllll.
  428.  
  429.           _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t
  430.                     Specifies the menu to reparent.
  431.  
  432.           _e_v_e_n_t     Specifies a pointer to the event causing the
  433.                     tear-off shell to collapse.
  434.  
  435.         TTTThhhheeee aaaarrrrmmmm TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  436.           vvvvooooiiiidddd aaaarrrrmmmm(
  437.           WWWWiiiiddddggggeeeetttt rrrroooowwwwCCCCoooolllluuuummmmnnnnWWWWiiiiddddggggeeeetttt);
  438.  
  439.           A cascade button widget must call the _a_r_m trait method as
  440.           part of its AAAArrrrmmmm or AAAArrrrmmmmAAAAnnnnddddAAAAccccttttiiiivvvvaaaatttteeee method.  More precisely, a
  441.           cascade button widget must call _a_r_m whenever the user posts
  442.           a Pulldown method.
  443.  
  444.           If _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t is not already armed, then the _a_r_m trait
  445.           method makes current the calling widget and saves the focus
  446.           widget.  If _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t is already armed, then the _a_r_m
  447.           trait method does nothing.
  448.  
  449.           _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t
  450.                     Specifies the XXXXmmmmRRRRoooowwwwCCCCoooolllluuuummmmnnnn widget to arm. The
  451.                     XXXXmmmmRRRRoooowwwwCCCCoooolllluuuummmmnnnn widget must have the XXXXmmmmNNNNrrrroooowwwwCCCCoooolllluuuummmmnnnnTTTTyyyyppppeeee
  452.                     resource set to XXXXmmmmMMMMEEEENNNNUUUU____BBBBAAAARRRR.
  453.  
  454.         TTTThhhheeee ddddiiiissssaaaarrrrmmmm TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  455.           vvvvooooiiiidddd ddddiiiissssaaaarrrrmmmm(
  456.  
  457.  
  458.  
  459.      Page 7                                         (printed 10/24/98)
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))        UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV        XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))
  467.  
  468.  
  469.  
  470.           WWWWiiiiddddggggeeeetttt rrrroooowwwwCCCCoooolllluuuummmmnnnnWWWWiiiiddddggggeeeetttt);
  471.  
  472.           The _d_i_s_a_r_m trait method undoes the changes caused by the _a_r_m
  473.           trait method.  A cascade button widget must call _d_i_s_a_r_m
  474.           whenever the user unposts a Pulldown menu.
  475.  
  476.           The _d_i_s_a_r_m trait method undoes the actions performed by the
  477.           _a_r_m trait method.  That is, if _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t is armed,
  478.           then the _d_i_s_a_r_m trait method makes current the active item
  479.           that had the focus before the menu was armed.
  480.  
  481.           _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t
  482.                     Specifies the menu widget to disarm.  The
  483.                     XXXXmmmmRRRRoooowwwwCCCCoooolllluuuummmmnnnn widget must have the XXXXmmmmNNNNrrrroooowwwwCCCCoooolllluuuummmmnnnnTTTTyyyyppppeeee
  484.                     resource set to XXXXmmmmMMMMEEEENNNNUUUU____BBBBAAAARRRR.
  485.  
  486.         TTTThhhheeee tttteeeeaaaarrrrOOOOffffffffAAAArrrrmmmm TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  487.           vvvvooooiiiidddd tttteeeeaaaarrrrOOOOffffffffAAAArrrrmmmm(
  488.           WWWWiiiiddddggggeeeetttt rrrroooowwwwCCCCoooolllluuuummmmnnnnWWWWiiiiddddggggeeeetttt);
  489.  
  490.           Your child button widget should call the tttteeeeaaaarrrrOOOOffffffffAAAArrrrmmmm trait
  491.           method when both of the following are true:
  492.  
  493.              +o  If your child's parent was a TearOff Menu container
  494.                 and it has already been torn off
  495.  
  496.              +o  The user has selected your child widget as the initial
  497.                 selection
  498.  
  499.           The tttteeeeaaaarrrrOOOOffffffffAAAArrrrmmmm trait method places the menu system into an
  500.           active state by setting up grabs. After doing this, the
  501.           tttteeeeaaaarrrrOOOOffffffffAAAArrrrmmmmtrait method itself calls the mmmmeeeennnnuuuuAAAArrrrmmmm trait
  502.           method.  Upon completion of the mmmmeeeennnnuuuuAAAArrrrmmmm trait method the
  503.           tttteeeeaaaarrrrOOOOffffffffAAAArrrrmmmmtrait method sets up modal grabs.
  504.  
  505.           _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t
  506.                     Specifies the menu widget to arm.
  507.  
  508.         TTTThhhheeee eeeennnnttttrrrryyyyCCCCaaaallllllllbbbbaaaacccckkkk TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  509.           vvvvooooiiiidddd eeeennnnttttrrrryyyyCCCCaaaallllllllbbbbaaaacccckkkk(
  510.           WWWWiiiiddddggggeeeetttt rrrroooowwwwCCCCoooolllluuuummmmnnnnWWWWiiiiddddggggeeeetttt,
  511.           WWWWiiiiddddggggeeeetttt cccchhhhiiiillllddddBBBBuuuuttttttttoooonnnnWWWWiiiiddddggggeeeetttt,
  512.           XXXXttttPPPPooooiiiinnnntttteeeerrrr ccccaaaallllllll____vvvvaaaalllluuuueeee);
  513.  
  514.           A button widget that supports an activate callback must call
  515.           the eeeennnnttttrrrryyyyCCCCaaaallllllllbbbbaaaacccckkkk trait method. More specifically, a button
  516.           widget must call this trait method when the user activates
  517.           the button.  This trait method calls the entry callback of
  518.           _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t.  The entry callback of the _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t
  519.           is defined by the value of the XXXXmmmmNNNNeeeennnnttttrrrryyyyCCCCaaaallllllllbbbbaaaacccckkkk resource.
  520.  
  521.           _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t
  522.  
  523.  
  524.  
  525.      Page 8                                         (printed 10/24/98)
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.      XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))        UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV        XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))
  533.  
  534.  
  535.  
  536.                     Specifies the menu widget.
  537.  
  538.           _c_h_i_l_d_B_u_t_t_o_n_W_i_d_g_e_t
  539.                     Specifies the child menu widget that the user has
  540.                     activated.
  541.  
  542.           _c_a_l_l__v_a_l_u_e
  543.                     Specifies the client data to pass to the entry
  544.                     callback.
  545.  
  546.         TTTThhhheeee uuuuppppddddaaaatttteeeeHHHHiiiissssttttoooorrrryyyy TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  547.           BBBBoooooooolllleeeeaaaannnn uuuuppppddddaaaatttteeeeHHHHiiiissssttttoooorrrryyyy(
  548.           WWWWiiiiddddggggeeeetttt rrrroooowwwwCCCCoooolllluuuummmmnnnnWWWWiiiiddddggggeeeetttt,
  549.           WWWWiiiiddddggggeeeetttt cccchhhhiiiillllddddBBBBuuuuttttttttoooonnnnWWWWiiiiddddggggeeeetttt,
  550.           BBBBoooooooolllleeeeaaaannnn uuuuppppddddaaaatttteeeeOOOOnnnnMMMMeeeemmmmWWWWiiiiddddggggeeeettttMMMMaaaattttcccchhhh);
  551.  
  552.           We do not recommend calling this trait method.
  553.  
  554.           The _c_h_i_l_d_B_u_t_t_o_n_W_i_d_g_e_t should call this trait method from the
  555.           widget's _i_n_i_t_i_a_l_i_z_e and sssseeeetttt____vvvvaaaalllluuuueeeessss methods.  This trait
  556.           method updates the value of the XXXXmmmmNNNNmmmmeeeennnnuuuuHHHHiiiissssttttoooorrrryyyy resource of
  557.           the _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t.
  558.  
  559.           _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t
  560.                     Specifies the RowColumn widget that is the parent
  561.                     of your button widget.
  562.  
  563.           _c_h_i_l_d_B_u_t_t_o_n_W_i_d_g_e_t
  564.                     Specifies the button widget calling this trait
  565.                     method.
  566.  
  567.           _u_p_d_a_t_e_O_n_M_e_m_W_i_d_g_e_t_M_a_t_c_h
  568.                     Specifies False.
  569.  
  570.           This trait method returns _T_r_u_e if _c_h_i_l_d_B_u_t_t_o_n_W_i_d_g_e_t is in a
  571.           Pulldown or Option Menu. Otherwise, it returns _F_a_l_s_e.
  572.  
  573.         TTTThhhheeee ggggeeeettttLLLLaaaassssttttSSSSeeeelllleeeeccccttttTTTToooopppplllleeeevvvveeeellll TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  574.           vvvvooooiiiidddd ggggeeeettttLLLLaaaassssttttSSSSeeeelllleeeeccccttttTTTTooooppppLLLLeeeevvvveeeellll(
  575.           WWWWiiiiddddggggeeeetttt rrrroooowwwwCCCCoooolllluuuummmmnnnnWWWWiiiiddddggggeeeetttt);
  576.  
  577.           We do not recommend calling this trait method.
  578.  
  579.           Menu button widgets need to call this trait method
  580.           immediately prior to arming themselves. That is, a menu
  581.           button widget should call the ggggeeeettttLLLLaaaassssttttSSSSeeeelllleeeeccccttttTTTTooooppppLLLLeeeevvvveeeellll trait
  582.           method from its AAAArrrrmmmm or AAAArrrrmmmmAAAAnnnnddddAAAAccccttttiiiivvvvaaaatttteeee methods.
  583.  
  584.           _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t
  585.                     Specifies the RowColumn widget that is the parent
  586.                     of your button widget.
  587.  
  588.  
  589.  
  590.  
  591.      Page 9                                         (printed 10/24/98)
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.      XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))        UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV        XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))
  599.  
  600.  
  601.  
  602.         TTTThhhheeee ppppoooossssiiiittttiiiioooonnnnMMMMeeeennnnuuuu TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  603.           vvvvooooiiiidddd ppppoooossssiiiittttiiiioooonnnnMMMMeeeennnnuuuu(
  604.           WWWWiiiiddddggggeeeetttt ppppooooppppuuuuppppMMMMeeeennnnuuuuPPPPaaaannnneeeeWWWWiiiiddddggggeeeetttt,
  605.           XXXXBBBBuuuuttttttttoooonnnnPPPPrrrreeeesssssssseeeeddddEEEEvvvveeeennnntttt ****bbbbuuuuttttttttoooonnnneeeevvvveeeennnntttt);
  606.  
  607.           You may need to call the ppppoooossssiiiittttiiiioooonnnnMMMMeeeennnnuuuu trait method from your
  608.           cascade button widget.  The ppppoooossssiiiittttiiiioooonnnnMMMMeeeennnnuuuu trait method
  609.           positions a Popup MenuPane by using the information in the
  610.           specified event.  The _p_o_p_u_p_M_e_n_u_P_a_n_e_W_i_d_g_e_t uses the _x__r_o_o_t
  611.           and _y__r_o_o_tvalues in the specified _b_u_t_t_o_n_e_v_e_n_t to determine
  612.           the menu position.
  613.  
  614.           Note that the ppppoooossssiiiittttiiiioooonnnnMMMMeeeennnnuuuu trait method works almost
  615.           identically to the XXXXmmmmMMMMeeeennnnuuuuPPPPoooossssiiiittttiiiioooonnnn. The only difference
  616.           between the two is that XXXXmmmmMMMMeeeennnnuuuuPPPPoooossssiiiittttiiiioooonnnn requires its first
  617.           argument to be an XXXXmmmmRRRRoooowwwwCCCCoooolllluuuummmmnnnn widget, but ppppoooossssiiiittttiiiioooonnnnMMMMeeeennnnuuuu can
  618.           accept any menu manager.
  619.  
  620.           _p_o_p_u_p_M_e_n_u_P_a_n_e_W_i_d_g_e_t
  621.                     Specifies the Popup menu to be positioned.
  622.                     Typically, this will be an XXXXmmmmRRRRoooowwwwCCCCoooolllluuuummmmnnnn widget.
  623.  
  624.           _b_u_t_t_o_n_e_v_e_n_t
  625.                     Specifies a pointer to the button event that
  626.                     caused the menu to pop up.
  627.  
  628.         TTTThhhheeee uuuuppppddddaaaatttteeeeBBBBiiiinnnnddddiiiinnnnggggssss TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  629.           vvvvooooiiiidddd uuuuppppddddaaaatttteeeeBBBBiiiinnnnddddiiiinnnnggggssss(
  630.           WWWWiiiiddddggggeeeetttt wwwwiiiiddddggggeeeetttt,
  631.           iiiinnnntttt mmmmooooddddeeee);
  632.  
  633.           Your button _w_i_d_g_e_t must call the uuuuppppddddaaaatttteeeeBBBBiiiinnnnddddiiiinnnnggggssss trait when
  634.           its accelerator or mnemonic changes.  Calling this trait
  635.           method informs the menu parent widget of any changes to
  636.           accelerators or mnemonics.
  637.  
  638.           _w_i_d_g_e_t    Specifies a widget. Ordinarily, this will be a
  639.                     menu child widget.
  640.  
  641.           _m_o_d_e      Specifies whether an accelerator or mnemonic has
  642.                     been added, removed, or replaced. You should
  643.                     specify one of the following constants:  XXXXmmmmAAAADDDDDDDD,
  644.                     XXXXmmmmDDDDEEEELLLLEEEETTTTEEEE, or XXXXmmmmRRRREEEEPPPPLLLLAAAACCCCEEEE.
  645.  
  646.         TTTThhhheeee rrrreeeeccccoooorrrrddddPPPPoooossssttttFFFFrrrroooommmmWWWWiiiiddddggggeeeetttt TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  647.           vvvvooooiiiidddd rrrreeeeccccoooorrrrddddPPPPoooossssttttFFFFrrrroooommmmWWWWiiiiddddggggeeeetttt(
  648.           WWWWiiiiddddggggeeeetttt rrrroooowwwwCCCCoooolllluuuummmmnnnnWWWWiiiiddddggggeeeetttt,
  649.           WWWWiiiiddddggggeeeetttt ccccaaaassssccccaaaaddddeeeeBBBBuuuuttttttttoooonnnnWWWWiiiiddddggggeeeetttt,
  650.           BBBBoooooooolllleeeeaaaannnn aaaattttttttaaaacccchhhh);
  651.  
  652.           We do not recommend writing your own cascade button widget,
  653.           but if you do, you will need to call the
  654.  
  655.  
  656.  
  657.      Page 10                                        (printed 10/24/98)
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.      XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))        UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV        XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))
  665.  
  666.  
  667.  
  668.           rrrreeeeccccoooorrrrddddPPPPoooossssttttFFFFrrrroooommmmWWWWiiiiddddggggeeeetttt. This trait method signals that a
  669.           MenuPane has either been attached to or detached from a
  670.           cascade button.
  671.  
  672.           _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t
  673.                     Specifies the RowColumn widget containing the
  674.                     Popup Menu.
  675.  
  676.           _c_a_s_c_a_d_e_B_u_t_t_o_n_W_i_d_g_e_t
  677.                     Specifies a cascade button widget.
  678.  
  679.           _a_t_t_a_c_h    This is a BBBBoooooooolllleeeeaaaannnn value. If _T_r_u_e, the
  680.                     _c_a_s_c_a_d_e_B_u_t_t_o_n_W_i_d_g_e_tis signaling that a MenuPane
  681.                     has been attached to a cascade button widget. If
  682.                     _F_a_l_s_e, the _c_a_s_c_a_d_e_B_u_t_t_o_n_W_i_d_g_e_t is signaling that a
  683.                     MenuPane has been detached from a cascade button
  684.                     widget.
  685.  
  686.         TTTThhhheeee ppppooooppppddddoooowwwwnnnnEEEEvvvveeeerrrryyyyoooonnnneeee TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  687.           vvvvooooiiiidddd ppppooooppppddddoooowwwwnnnnEEEEvvvveeeerrrryyyyoooonnnneeee(
  688.           WWWWiiiiddddggggeeeetttt mmmmeeeennnnuuuuSSSShhhheeeellllllllWWWWiiiiddddggggeeeetttt,
  689.           XXXXEEEEvvvveeeennnntttt ****eeeevvvveeeennnntttt);
  690.  
  691.           The ppppooooppppddddoooowwwwnnnnEEEEvvvveeeerrrryyyyoooonnnneeee trait method pops down all the Popup
  692.           Menus associated with _m_e_n_u_S_h_e_l_l_W_i_d_g_e_t, from bottom to top.
  693.  
  694.           _m_e_n_u_S_h_e_l_l_W_i_d_g_e_t
  695.                     Specifies the menu shell widget.
  696.  
  697.           _e_v_e_n_t     Specifies a pointer to the event causing the
  698.                     popdown.
  699.  
  700.         TTTThhhheeee cccchhhhiiiillllddddFFFFooooccccuuuussss TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  701.           vvvvooooiiiidddd cccchhhhiiiillllddddFFFFooooccccuuuussss(
  702.           WWWWiiiiddddggggeeeetttt mmmmeeeennnnuuuuCCCChhhhiiiillllddddWWWWiiiiddddggggeeeetttt);
  703.  
  704.           The cccchhhhiiiillllddddFFFFooooccccuuuussss trait method gives _m_e_n_u_C_h_i_l_d_W_i_d_g_e_t the
  705.           keyboard focus. This trait method performs other special
  706.           handling to ensure that traversal ignores the focus change.
  707.           This is needed so that keyboard actions (for example,
  708.           <<<<oooossssffffSSSSeeeelllleeeecccctttt>>>> or <<<<oooossssffffHHHHeeeellllpppp>>>>) may be taken during the drag.
  709.  
  710.           _m_e_n_u_C_h_i_l_d_W_i_d_g_e_t
  711.                     Specifies the menu child widget.
  712.  
  713.         TTTThhhheeee ggggeeeettttPPPPooooppppuuuuppppPPPPoooosssstttteeeedddd TTTTrrrraaaaiiiitttt MMMMeeeetttthhhhoooodddd
  714.           WWWWiiiiddddggggeeeetttt ggggeeeettttPPPPooooppppuuuuppppPPPPoooosssstttteeeedddd(
  715.           WWWWiiiiddddggggeeeetttt rrrroooowwwwCCCCoooolllluuuummmmnnnnWWWWiiiiddddggggeeeetttt);
  716.  
  717.           Each _r_o_w_C_o_l_u_m_n_W_i_d_g_e_t maintains one shell to encompass all of
  718.           its Popup Menus. Use the ggggeeeettttPPPPooooppppuuuuppppPPPPoooosssstttteeeedddd trait method to get
  719.           the widget identifier of that shell.
  720.  
  721.  
  722.  
  723.      Page 11                                        (printed 10/24/98)
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.      XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))        UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV        XXXXmmmmQQQQTTTTmmmmeeeennnnuuuuSSSSyyyysssstttteeeemmmm((((3333XXXX))))
  731.  
  732.  
  733.  
  734.           _m_e_n_u_C_h_i_l_d_W_i_d_g_e_t
  735.                     Specifies the XXXXmmmmRRRRoooowwwwCCCCoooolllluuuummmmnnnn widget managing your
  736.                     button widget.
  737.  
  738.           This trait method returns the widget identifier of the shell
  739.           managing the posted Popup Menu.
  740.  
  741.      RRRREEEELLLLAAAATTTTEEEEDDDD
  742.           XXXXmmmmRRRRoooowwwwCCCCoooolllluuuummmmnnnn(3), XXXXmmmmCCCCaaaassssccccaaaaddddeeeeBBBBuuuuttttttttoooonnnn(3), XXXXmmmmPPPPuuuusssshhhhBBBBuuuuttttttttoooonnnn(3),
  743.           XXXXmmmmDDDDrrrraaaawwwwnnnnBBBBuuuuttttttttoooonnnn(3), XXXXmmmmAAAArrrrrrrroooowwwwBBBBuuuuttttttttoooonnnn(3), XXXXmmmmPPPPuuuusssshhhhBBBBuuuuttttttttoooonnnnGGGGaaaaddddggggeeeetttt(3),
  744.           XXXXmmmmAAAArrrrrrrroooowwwwBBBBuuuuttttttttoooonnnnGGGGaaaaddddggggeeeetttt(3) and XXXXmmmmMMMMeeeennnnuuuuPPPPoooossssiiiittttiiiioooonnnn(3).
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.      Page 12                                        (printed 10/24/98)
  790.  
  791.  
  792.  
  793.